/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package BussinesLogic;

import EntidadesCM.AfiliadoCM;
import EntidadesCM.CuentaCM;
import EntidadesCM.RefTarjetaCM;
import Entities.Cuenta;
import controller.CategoriaJpaController;
import controller.CuentaJpaController;
import controller.exceptions.NonexistentEntityException;
import controller.exceptions.PreexistingEntityException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Nas
 */
public class CuentaBL implements Serializable {
    CuentaJpaController cuentaJpaController;  
    
    public void crearCuenta(Cuenta cuenta) throws PreexistingEntityException, Exception {
    }

    public void editarCuenta(Cuenta cuenta) throws NonexistentEntityException, Exception {
    }

    public void eliminarCuenta(Integer id) throws NonexistentEntityException {
    }

    public List<CuentaCM> buscarAllCuentasByAfiliado(Integer id) {
        List<CuentaCM> cuentasCM = new ArrayList<>();
        List<Cuenta> cuentas;
        cuentaJpaController = new CuentaJpaController();
        cuentas = cuentaJpaController.findAllCuentasByAfiliado(id);
        if (cuentas.size() > 0) {
            CuentaCM cuentaCM;
            for (Cuenta cuenta : cuentas) {
                cuentaCM = new CuentaCM();
                cuentaCM.setIdCuenta(cuenta.getIdCuenta());
                //afiliacionCM.setIdAfiliado(new AfiliadoCM());
                cuentaCM.setEstado(cuenta.getEstado());
                cuentaCM.setNroCuenta(cuenta.getNroCuenta()); 
                cuentaCM.setFechaCreate(cuenta.getFechaCreate());
                cuentaCM.setIdBanco(new BancoBL().convertirBancoCM(cuenta.getIdBanco()));
                cuentaCM.setIdTipoCuenta(new TipoCuentaBL().convertirTipoCuentaCM(cuenta.getIdTipoCuenta()));
                cuentaCM.setIdRefTarjeta(new RefTarjetaBL().convertirRefTarjetaCM(cuenta.getIdRefTarjeta()));
                cuentasCM.add(cuentaCM);
            }
            return cuentasCM;
        } else {
            return null;
        }
    }


    public CuentaCM findCuenta(Integer id) {
        return null;
    }

    
}
